home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.19990725-20000114 / 000436_news@columbia.edu _Mon Jan 10 21:24:17 2000.msg < prev    next >
Internet Message Format  |  2020-01-01  |  5KB

  1. Return-Path: <news@columbia.edu>
  2. Received: from newsmaster.cc.columbia.edu (newsmaster.cc.columbia.edu [128.59.59.30])
  3.     by watsun.cc.columbia.edu (8.8.5/8.8.5) with ESMTP id VAA26097
  4.     for <kermit.misc@watsun.cc.columbia.edu>; Mon, 10 Jan 2000 21:24:16 -0500 (EST)
  5. Received: (from news@localhost)
  6.     by newsmaster.cc.columbia.edu (8.8.5/8.8.5) id VAA20502
  7.     for kermit.misc@watsun.cc.columbia.edu; Mon, 10 Jan 2000 21:03:47 -0500 (EST)
  8. X-Authentication-Warning: newsmaster.cc.columbia.edu: news set sender to <news> using -f
  9. From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
  10. Subject: Case Study #4: Automatic text/binary mode switching
  11. Date: 11 Jan 2000 02:03:46 GMT
  12. Organization: Columbia University
  13. Message-ID: <85e322$k0k$1@newsmaster.cc.columbia.edu>
  14. To: kermit.misc@columbia.edu
  15.  
  16.  
  17. Today's topic is automatic text/binary file-transfer mode selection.
  18.  
  19. The manual goes into some detail about just what "text" and "binary"
  20. mean, and what the consequences might be for choosing the wrong mode.
  21. This discussion assumes you know all that.
  22.  
  23. One of the hallmarks of C-Kermit 7.0 is that it tries to do the right
  24. thing for most people automatically whenever possible, by default, rather
  25. than making everybody cope with myriad settings to accomplish what they
  26. want.  It's not exactly artificial intelligence, more like layer upon
  27. layer of tricks and ruses based on years of experience.
  28.  
  29. A common source of aggravation to users of any file-transfer software
  30. (FTP, Zmodem, or Kermit) is when find you have transferred a file in the
  31. wrong mode -- text when it should have been binary, or vice-versa.  The
  32. fact is that on most platforms, application software has no good way of
  33. telling the difference between a "text file" and a "binary file" on its
  34. own.  That's why file-transfer programs have commands that make you do it.
  35.  
  36. Back in the old days, Kermit's rules were simple, modeled on those of FTP:
  37. all files were transferred in text mode by default.  If you wanted want to
  38. transfer files in binary mode, you had to give a command, SET FILE TYPE
  39. BINARY.  From this point, all files would be transferred in binary mode
  40. until you gave another SET FILE TYPE command to change the mode back to
  41. TEXT.
  42.  
  43. In C-Kermit 7.0, the rules have changed, and in fact have become quite
  44. complicated.  But since now it is all supposed to "just work", most people
  45. will never need to know what they are.  A couple of new advances make this
  46. possible:
  47.  
  48.  1. Kermit protocol now includes a provision for "automatic peer
  49.     recognition".  If Kermit A is on Linux and Kermit B is on Solaris,
  50.     they say "we are both on UNIX so we are alike" (modern versions of
  51.     FTP do this too).  In this case, they automatically transfer
  52.     everything in binary mode except when character-set translation has
  53.     been requested.  When the two Kermits are not alike (e.g. some
  54.     pairing of Unix, VMS, Windows, OS/2, OS-9, VM/CMS, etc), or if one
  55.     of the Kermit partners fails to identify itself, then the
  56.     text/binary file distinction is important.
  57.  
  58.  2. When the two Kermits do not have an "all-binary" connection (e.g.
  59.     Unix-to-Unix without character-set translation), the file sender can
  60.     switch automatically between text and binary mode on a per-file
  61.     basis based on each filename.  The sender informs the receiver of
  62.     transfer mode of each file (this works with all but the most
  63.     primitive Kermit implementations).
  64.  
  65. The upshot is, if you send files from C-Kermit 7.0 to C-Kermit 5A or later
  66. (on Unix, VMS, or other platform), to Kermit 95 (any version) or MS-DOS
  67. Kermit 3.00 or later, the right stuff should happen.
  68.  
  69. When the two platforms are alike, all files are transferred in binary mode
  70. unless you go out of your way to force text.  When the text/binary
  71. distinction is significant, C-Kermit picks the mode for each file by
  72. comparing its name with lists of text and binary filename patterns.  If a
  73. filename doesn't match any of the patterns, then the file is sent in the
  74. prevailing (SET FILE TYPE) mode, which, by new default, is BINARY.
  75.  
  76. Default lists are built in that catch the well-known types; you can see
  77. them by typing SHOW PATTERNS.  Here's an example for UNIX:
  78.  
  79.  File binary-patterns:
  80.   *.gz *.Z *.tgz *.gif *.tar *.zip *.o *.so *.a *.out *.exe *.jpg
  81.   *.jpeg *.tif *.tiff *.pdf *.so.* *.class *.rpm *.bmp *.bz2 *.BMP
  82.   *.dll *.doc *.vxd *.pdf *.xl* *.lzh *.lhz [wk]ermit
  83.  
  84.  File text-patterns:
  85.   *.txt *.c *.h *.r *.w *.cpp *.ksc *.bwr *.upd *.html *.htm *.mss
  86.   *.tex *.nr [Mm]akefile *.hex *.hqx *.for *.f77 *.f *.F *.s *.pas
  87.   *.java *.el *.lisp *.sh *.perl *.awk *.sno *.spt *.sed *.TXT
  88.   *read.me *READ.ME .* */.*
  89.  
  90. Of course you can change the lists by adding, removing, or replacing
  91. patterns.
  92.  
  93. The utility of this feature becomes apparent when you want to transfer a
  94. mixed group of files.  For example, suppose you want to propogate a
  95. directory that contains a mixture of C source files, binaries, and ZIP or
  96. compressed tar archives to a variety of platforms.  Now, for the first
  97. time, "send *" does it right.
  98.  
  99. This is just an introduction.  For complete details on this topic, read
  100. ckermit.txt Section 4.3, plus Section 4.9 about pattern syntax.
  101.  
  102. - Frank